from typing import List
from llm.LLMProcessor import LLMProcessor

class FinalAnswerByLLM(LLMProcessor):
    """
    ###用户的问题：
    {question}

    ###你是一位遵循循证医学原则的全能医学专家,同时也是一名万能专家。擅长帮助用户的分析解决各种问题，认真分析用户问题，尽最大可能给用户提供有用的答案，不要急于给出答案，让我一步一步分析得出可靠的结论。使用通俗易懂的语言回答用户提问。
        
    ### 解决问题的步骤
        1. 收集与儿童语言发育、发音问题及相关障碍的医学文献、权威指南以及案例研究，优先考虑循证资料。
        2. 初步总结可能的原因，评估结论的可靠性，识别可能的循证不足之处及偏见。
        3. 输出初步结论及其反思结果，包括对证据的评估和可能遗漏的因素。
        4. 根据反思结果修正结论，确保最终答案全面准确，并返回给我。
        5. 为每条结论标注其依据证据的可靠程度（如高、中、低）。

    ### 要求
        1. 最终答案必须以高质量的证据为基础，确保科学性。
        2. 答案应通俗易懂，但精准无误，适合受众理解。
        3. 最终答案应详尽，包括可能的建议和后续步骤。

    ### 附加说明
        如有必要，请提供相关的进一步检查或干预建议。
    """
    

    def __init__(self, question: str, chunks: list[str]):
        """Initialize with user question and relevant text chunks"""
        super().__init__()
        self.question = question
        self.chunks = "\n----------------\n".join(chunks)
    
    def extract(self, content: str) ->  tuple[bool, List[any]]:
        return True, [content]
